// 用户首页
const app = getApp();
const tokenManager = require('../../utils/tokenManager');

Page({
  data: {
    userInfo: null,
    loading: false,
    isLoggedIn: false
  },
  
  onLoad() {
    console.log('用户首页加载');
    // 检查登录状态
    const isLoggedIn = tokenManager.isLoggedIn();
    console.log('用户登录状态:', isLoggedIn);
    this.setData({ isLoggedIn });
    
    if (isLoggedIn) {
      this.loadUserInfo();
    } else {
      console.log('用户未登录，准备跳转到登录页');
      this.redirectToLogin();
    }
  },
  
  onShow() {
    console.log('用户首页显示');
    // 每次页面显示时更新登录状态和用户信息
    const isLoggedIn = tokenManager.isLoggedIn();
    console.log('当前登录状态:', isLoggedIn);
    
    // 如果登录状态变化，更新界面
    if (isLoggedIn !== this.data.isLoggedIn) {
      this.setData({ isLoggedIn });
      
      if (isLoggedIn) {
        this.loadUserInfo();
      } else {
        this.setData({ userInfo: null });
      }
    } else if (isLoggedIn) {
      // 如果已登录，刷新用户信息
      this.loadUserInfo();
    }
  },
  
  /**
   * 加载用户信息
   */
  async loadUserInfo() {
    this.setData({ loading: true });
    
    try {
      const token = tokenManager.getAccessToken();
      const userInfo = await app.api.user.getProfile(token);
      
      this.setData({
        userInfo,
        loading: false
      });
    } catch (error) {
      console.error('获取用户信息失败', error);
      this.setData({ loading: false });
      
      wx.showToast({
        title: '获取信息失败',
        icon: 'none'
      });
    }
  },
  
  /**
   * 跳转到用户资料编辑页
   */
  navigateToProfileEdit() {
    wx.navigateTo({
      url: '/pages/user/profile'
    });
  },
  
  /**
   * 跳转到头像编辑页
   */
  navigateToAvatarEdit() {
    wx.navigateTo({
      url: '/pages/avatar-edit/avatar-edit'
    });
  },
  
  /**
   * 跳转到登录页
   */
  redirectToLogin() {
    // 保存当前页面路径，登录后返回
    wx.setStorageSync('prevPage', '/pages/user/index');
    
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },
  
  /**
   * 退出登录
   */
  logout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          app.logout();
        }
      }
    });
  }
}); 